home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / sun / applet / Main.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  7.8 KB  |  315 lines

  1. package sun.applet;
  2.  
  3. import java.io.BufferedInputStream;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.FileOutputStream;
  7. import java.io.IOException;
  8. import java.lang.reflect.InvocationTargetException;
  9. import java.lang.reflect.Method;
  10. import java.net.MalformedURLException;
  11. import java.net.URL;
  12. import java.util.Enumeration;
  13. import java.util.Properties;
  14. import java.util.Vector;
  15. import sun.net.www.ParseUtil;
  16.  
  17. public class Main {
  18.    static File theUserPropertiesFile;
  19.    static final String[][] avDefaultUserProps = new String[][]{{"http.proxyHost", ""}, {"http.proxyPort", "80"}, {"package.restrict.access.sun", "true"}};
  20.    private static AppletMessageHandler amh;
  21.    private boolean debugFlag = false;
  22.    private boolean helpFlag = false;
  23.    private String encoding = null;
  24.    private boolean noSecurityFlag = false;
  25.    private static boolean cmdLineTestFlag;
  26.    private static Vector urlList;
  27.    public static final String theVersion;
  28.  
  29.    public static void main(String[] var0) {
  30.       Main var1 = new Main();
  31.       int var2 = var1.run(var0);
  32.       if (var2 != 0 || cmdLineTestFlag) {
  33.          System.exit(var2);
  34.       }
  35.  
  36.    }
  37.  
  38.    private int run(String[] var1) {
  39.       try {
  40.          if (var1.length == 0) {
  41.             usage();
  42.             return 0;
  43.          }
  44.  
  45.          int var3;
  46.          for(int var2 = 0; var2 < var1.length; var2 += var3) {
  47.             var3 = this.decodeArg(var1, var2);
  48.             if (var3 == 0) {
  49.                throw new ParseException(this, lookup("main.err.unrecognizedarg", var1[var2]));
  50.             }
  51.          }
  52.       } catch (ParseException var5) {
  53.          System.err.println(var5.getMessage());
  54.          return 1;
  55.       }
  56.  
  57.       if (this.helpFlag) {
  58.          usage();
  59.          return 0;
  60.       } else if (urlList.size() == 0) {
  61.          System.err.println(lookup("main.err.inputfile"));
  62.          return 1;
  63.       } else if (this.debugFlag) {
  64.          return this.invokeDebugger(var1);
  65.       } else {
  66.          if (!this.noSecurityFlag && System.getSecurityManager() == null) {
  67.             this.init();
  68.          }
  69.  
  70.          for(int var6 = 0; var6 < urlList.size(); ++var6) {
  71.             try {
  72.                AppletViewer.parse((URL)urlList.elementAt(var6), this.encoding);
  73.             } catch (IOException var4) {
  74.                System.err.println(lookup("main.err.io", var4.getMessage()));
  75.                return 1;
  76.             }
  77.          }
  78.  
  79.          return 0;
  80.       }
  81.    }
  82.  
  83.    private static void usage() {
  84.       System.out.println(lookup("usage"));
  85.    }
  86.  
  87.    private int decodeArg(String[] var1, int var2) throws ParseException {
  88.       String var3 = var1[var2];
  89.       int var4 = var1.length;
  90.       if (!"-help".equalsIgnoreCase(var3) && !"-?".equals(var3)) {
  91.          if ("-encoding".equals(var3) && var2 < var4 - 1) {
  92.             if (this.encoding != null) {
  93.                throw new ParseException(this, lookup("main.err.dupoption", var3));
  94.             } else {
  95.                ++var2;
  96.                this.encoding = var1[var2];
  97.                return 2;
  98.             }
  99.          } else if ("-debug".equals(var3)) {
  100.             this.debugFlag = true;
  101.             return 1;
  102.          } else if ("-Xnosecurity".equals(var3)) {
  103.             System.err.println();
  104.             System.err.println(lookup("main.warn.nosecmgr"));
  105.             System.err.println();
  106.             this.noSecurityFlag = true;
  107.             return 1;
  108.          } else if ("-XcmdLineTest".equals(var3)) {
  109.             cmdLineTestFlag = true;
  110.             return 1;
  111.          } else if (var3.startsWith("-")) {
  112.             throw new ParseException(this, lookup("main.err.unsupportedopt", var3));
  113.          } else {
  114.             URL var5 = this.parseURL(var3);
  115.             if (var5 != null) {
  116.                urlList.addElement(var5);
  117.                return 1;
  118.             } else {
  119.                return 0;
  120.             }
  121.          }
  122.       } else {
  123.          this.helpFlag = true;
  124.          return 1;
  125.       }
  126.    }
  127.  
  128.    private URL parseURL(String var1) throws ParseException {
  129.       Object var2 = null;
  130.       String var3 = "file:";
  131.  
  132.       try {
  133.          URL var6;
  134.          if (var1.indexOf(58) <= 1) {
  135.             var6 = ParseUtil.fileToEncodedURL(new File(var1));
  136.          } else if (var1.startsWith(var3) && var1.length() != var3.length() && !(new File(var1.substring(var3.length()))).isAbsolute()) {
  137.             String var4 = ParseUtil.fileToEncodedURL(new File(System.getProperty("user.dir"))).getPath() + var1.substring(var3.length());
  138.             var6 = new URL("file", "", var4);
  139.          } else {
  140.             var6 = new URL(var1);
  141.          }
  142.  
  143.          return var6;
  144.       } catch (MalformedURLException var5) {
  145.          throw new ParseException(this, lookup("main.err.badurl", var1, var5.getMessage()));
  146.       }
  147.    }
  148.  
  149.    private int invokeDebugger(String[] var1) {
  150.       String[] var2 = new String[var1.length + 1];
  151.       int var3 = 0;
  152.       String var4 = System.getProperty("java.home") + File.separator + "phony";
  153.       var2[var3++] = "-Djava.class.path=" + var4;
  154.       var2[var3++] = "sun.applet.Main";
  155.  
  156.       for(int var5 = 0; var5 < var1.length; ++var5) {
  157.          if (!"-debug".equals(var1[var5])) {
  158.             var2[var3++] = var1[var5];
  159.          }
  160.       }
  161.  
  162.       try {
  163.          Class var13 = Class.forName("com.sun.tools.example.debug.tty.TTY", true, ClassLoader.getSystemClassLoader());
  164.          Method var6 = var13.getDeclaredMethod("main", String[].class);
  165.          var6.invoke((Object)null, var2);
  166.          return 0;
  167.       } catch (ClassNotFoundException var7) {
  168.          System.err.println(lookup("main.debug.cantfinddebug"));
  169.          return 1;
  170.       } catch (NoSuchMethodException var8) {
  171.          System.err.println(lookup("main.debug.cantfindmain"));
  172.          return 1;
  173.       } catch (InvocationTargetException var9) {
  174.          System.err.println(lookup("main.debug.exceptionindebug"));
  175.          return 1;
  176.       } catch (IllegalAccessException var10) {
  177.          System.err.println(lookup("main.debug.cantaccess"));
  178.          return 1;
  179.       }
  180.    }
  181.  
  182.    private void init() {
  183.       Properties var1 = this.getAVProps();
  184.       var1.put("browser", "sun.applet.AppletViewer");
  185.       var1.put("browser.version", "1.06");
  186.       var1.put("browser.vendor", "Sun Microsystems Inc.");
  187.       var1.put("http.agent", "Java(tm) 2 SDK, Standard Edition v" + theVersion);
  188.       var1.put("package.restrict.definition.java", "true");
  189.       var1.put("package.restrict.definition.sun", "true");
  190.       var1.put("java.version.applet", "true");
  191.       var1.put("java.vendor.applet", "true");
  192.       var1.put("java.vendor.url.applet", "true");
  193.       var1.put("java.class.version.applet", "true");
  194.       var1.put("os.name.applet", "true");
  195.       var1.put("os.version.applet", "true");
  196.       var1.put("os.arch.applet", "true");
  197.       var1.put("file.separator.applet", "true");
  198.       var1.put("path.separator.applet", "true");
  199.       var1.put("line.separator.applet", "true");
  200.       Properties var2 = System.getProperties();
  201.       Enumeration var3 = var2.propertyNames();
  202.  
  203.       while(var3.hasMoreElements()) {
  204.          String var4 = (String)var3.nextElement();
  205.          String var5 = var2.getProperty(var4);
  206.          String var6;
  207.          if ((var6 = (String)var1.setProperty(var4, var5)) != null) {
  208.             System.err.println(lookup("main.warn.prop.overwrite", var4, var6, var5));
  209.          }
  210.       }
  211.  
  212.       System.setProperties(var1);
  213.       if (!this.noSecurityFlag) {
  214.          System.setSecurityManager(new AppletSecurity());
  215.       } else {
  216.          System.err.println(lookup("main.nosecmgr"));
  217.       }
  218.  
  219.    }
  220.  
  221.    private Properties getAVProps() {
  222.       new Properties();
  223.       File var2 = theUserPropertiesFile;
  224.       Properties var1;
  225.       if (var2.exists()) {
  226.          if (var2.canRead()) {
  227.             var1 = this.getAVProps(var2);
  228.          } else {
  229.             System.err.println(lookup("main.warn.cantreadprops", var2.toString()));
  230.             var1 = this.setDefaultAVProps();
  231.          }
  232.       } else {
  233.          File var3 = new File(System.getProperty("user.home"));
  234.          File var4 = new File(var3, ".hotjava");
  235.          var4 = new File(var4, "properties");
  236.          if (var4.exists()) {
  237.             var1 = this.getAVProps(var4);
  238.          } else {
  239.             System.err.println(lookup("main.warn.cantreadprops", var4.toString()));
  240.             var1 = this.setDefaultAVProps();
  241.          }
  242.  
  243.          try {
  244.             FileOutputStream var5 = new FileOutputStream(var2);
  245.             var1.store(var5, lookup("main.prop.store"));
  246.             var5.close();
  247.          } catch (IOException var6) {
  248.             System.err.println(lookup("main.err.prop.cantsave", var2.toString()));
  249.          }
  250.       }
  251.  
  252.       return var1;
  253.    }
  254.  
  255.    private Properties setDefaultAVProps() {
  256.       Properties var1 = new Properties();
  257.  
  258.       for(int var2 = 0; var2 < avDefaultUserProps.length; ++var2) {
  259.          var1.setProperty(avDefaultUserProps[var2][0], avDefaultUserProps[var2][1]);
  260.       }
  261.  
  262.       return var1;
  263.    }
  264.  
  265.    private Properties getAVProps(File var1) {
  266.       Properties var2 = new Properties();
  267.       Properties var3 = new Properties();
  268.  
  269.       try {
  270.          FileInputStream var4 = new FileInputStream(var1);
  271.          var3.load(new BufferedInputStream(var4));
  272.          var4.close();
  273.       } catch (IOException var6) {
  274.          System.err.println(lookup("main.err.prop.cantread", var1.toString()));
  275.       }
  276.  
  277.       for(int var7 = 0; var7 < avDefaultUserProps.length; ++var7) {
  278.          String var5 = var3.getProperty(avDefaultUserProps[var7][0]);
  279.          if (var5 != null) {
  280.             var2.setProperty(avDefaultUserProps[var7][0], var5);
  281.          } else {
  282.             var2.setProperty(avDefaultUserProps[var7][0], avDefaultUserProps[var7][1]);
  283.          }
  284.       }
  285.  
  286.       return var2;
  287.    }
  288.  
  289.    private static String lookup(String var0) {
  290.       return amh.getMessage(var0);
  291.    }
  292.  
  293.    private static String lookup(String var0, String var1) {
  294.       return amh.getMessage(var0, var1);
  295.    }
  296.  
  297.    private static String lookup(String var0, String var1, String var2) {
  298.       return amh.getMessage(var0, var1, var2);
  299.    }
  300.  
  301.    private static String lookup(String var0, String var1, String var2, String var3) {
  302.       return amh.getMessage(var0, var1, var2, var3);
  303.    }
  304.  
  305.    static {
  306.       File var0 = new File(System.getProperty("user.home"));
  307.       var0.canWrite();
  308.       theUserPropertiesFile = new File(var0, ".appletviewer");
  309.       amh = new AppletMessageHandler("appletviewer");
  310.       cmdLineTestFlag = false;
  311.       urlList = new Vector(1);
  312.       theVersion = System.getProperty("java.version");
  313.    }
  314. }
  315.